package cn.iocoder.yudao.module.hs.controller.admin.shiporder.vo;

import cn.iocoder.yudao.module.hs.controller.admin.shiporderdetail.vo.ShipOrderDetailSaveReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 出库单新增/修改 Request VO")
@Data
public class ShipOrderSaveReqVO {

    @Schema(description = "主键")
    private Long id;

    @Schema(description = "发货单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "80924409")
    @NotEmpty(message = "发货单号不能为空")
    private String code;

    @Schema(description = "参照单号", example = "4900172184")
    private String refereCode;

    @Schema(description = "所在仓库")
    private Long warehouseId;

    @Schema(description = "状态")
    private String status;

    @Schema(description = "仓库分类")
    private String warehouseType;

    @Schema(description = "出库操作时间")
    private LocalDateTime outingTime;

    @Schema(description = "运输中时间")
    private LocalDateTime transportingTime;

    @Schema(description = "发货单明细")
    private List<ShipOrderDetailSaveReqVO> shipOrderDetailList;

    @Schema(description = "发货地点", example = "SZ10")
    private String fromWarehouseCode;

    @Schema(description = "收货地点", example = "BDL0")
    private String toWarehouseCode;

    @Schema(description = "收货仓库ID")
    private Long toWarehouseId;

    @Schema(description = "客户编码")
    private String customerCode;

    @Schema(description = "客户ID")
    private Long customerId;

    @Schema(description = "是否直发客户")
    private Integer isDirect;

    @Schema(description = "部门ID，控制数据权限")
    private Long deptId;
}